]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agopopupMenuItem: Make it a widget inheriting from St.BoxLayout
Marco Trevisan (Treviño) [Fri, 12 Apr 2019 00:19:31 +0000 (19:19 -0500)]
popupMenuItem: Make it a widget inheriting from St.BoxLayout

Don't use composition for PopupBaseMenuItem, but instead inherit from BoxLayout.
So remove the internal actor, making all the menu items actor themselves.

Add an actor property as fallback to avoid warnings for usage in menus.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/499

7 years agosystemActions: Only do prefix matches
Florian Müllner [Sun, 4 Nov 2018 23:21:26 +0000 (00:21 +0100)]
systemActions: Only do prefix matches

Our search for system actions is currently inconsistent with searching
for applications: While we match terms anywhere within keywords, GIO
will only match at the beginning of words.

In order to get the same behavior, split keywords into single words
and only match terms at the beginning of a word.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/745

7 years agojs: Use GTypeFlags to define abstract GObject classes
Florian Müllner [Sat, 27 Apr 2019 18:45:14 +0000 (20:45 +0200)]
js: Use GTypeFlags to define abstract GObject classes

gjs now supports an optional GTypeFlags value for GObject subclasses
defined with GObject.registerClass(), so it is not possible to define
abstract classes on the gobject-level, just like from C.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/517

7 years agoBump version to 3.33.1
Florian Müllner [Tue, 14 May 2019 15:31:14 +0000 (15:31 +0000)]
Bump version to 3.33.1

Update NEWS.

7 years agoUpdate German translation
Tim Sabsch [Sun, 12 May 2019 10:38:15 +0000 (10:38 +0000)]
Update German translation

(cherry picked from commit 1c5f926a70792946e4b85a2534b1e8395eec5e24)

7 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Sat, 11 May 2019 10:27:11 +0000 (10:27 +0000)]
Update Esperanto translation

7 years agokeyboard: Remove unused _hideSubkeys function
Marco Trevisan (Treviño) [Thu, 9 May 2019 21:11:26 +0000 (16:11 -0500)]
keyboard: Remove unused _hideSubkeys function

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Unset Idle ID before removing it
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:51:17 +0000 (14:51 -0500)]
keyboard: Unset Idle ID before removing it

When toggling keyboard various times, we might get an error because trying to
disconnect an idle that isn't set anymore.

This is because when we remove the idle, we don't unset the ID.
Also clear the idle when destroying the keyboard.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Use JS style for current page variable
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:37:20 +0000 (14:37 -0500)]
keyboard: Use JS style for current page variable

We should use camelCase for _currentPage.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Don't try to set the same current page twice
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:35:11 +0000 (14:35 -0500)]
keyboard: Don't try to set the same current page twice

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agokeyboard: Unset current page when it gets destroyed
Marco Trevisan (Treviño) [Thu, 9 May 2019 19:30:21 +0000 (14:30 -0500)]
keyboard: Unset current page when it gets destroyed

The current page is going to be destroyed as part of _onKeyboardGroupsChanged
cleanup, however we don't unset its pointer, and thus we'd might try to call a
function using an invalidated pointer.

So, unset the this._current_page reference when its get destroyed, connecting
to destroy signal when setting it and disconnecting when changing page.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1281

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540

7 years agoUpdate Chinese (China) translation
Dingzhong Chen [Wed, 8 May 2019 10:13:32 +0000 (18:13 +0800)]
Update Chinese (China) translation

7 years agost: Delay handling of :first/:last-child changes
Florian Müllner [Thu, 2 May 2019 19:12:01 +0000 (21:12 +0200)]
st: Delay handling of :first/:last-child changes

Updating the :first/:last-child pseudo classes can result in a lot
of unnecessary style changes when bulk-adding children to a container,
as every child ends up as the new last child.

Address this by deferring the style change to an idle, so we only do
the work once for the actual first and last child.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/529

7 years agoRevert "st: Reload icon on style changes only if necessary"
Florian Müllner [Fri, 3 May 2019 21:24:43 +0000 (21:24 +0000)]
Revert "st: Reload icon on style changes only if necessary"

The size isn't the only relevant style change, we also need to pick
up icon-colors, icon-style and icon-shadow.

This reverts commit 94995e9c1e1ffc3eb44c06d23a30a2ac8cd2455d.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/529

7 years agonetwork: Handle interface name changes
Fabrice Bellet [Tue, 7 May 2019 15:21:09 +0000 (15:21 +0000)]
network: Handle interface name changes

The interface name when a device is added may not be the final one. For
example when using USB tethering, it will first appear as 'usb0' before
being renamed to something like 'enp0s20f0u1' depending on the port the
phone is plugged in.

As a result, we will ignore the new interface name in that case and fail
to associate the correct connection with the device: Instead of the
correct "USB Ethernet" (or user-customized name), it will show up as
"Ethernet".

Fix this by updating names and connections when a device's interface
property changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/534

7 years agopanel: Drag topmost maximized window
Dylan McCall [Mon, 5 Feb 2018 18:46:22 +0000 (10:46 -0800)]
panel: Drag topmost maximized window

This makes it possible to drag a window which appears connected with the
panel, even if it is not in focus. As a result, it should be easier to
manipulate side-by-side windows.

https://bugzilla.gnome.org/show_bug.cgi?id=679290

7 years agotexture-cache: Keep aspect ratio for content images
Florian Müllner [Tue, 30 Apr 2019 18:37:34 +0000 (20:37 +0200)]
texture-cache: Keep aspect ratio for content images

Images are loaded either with a supplied fixed size, or using the "native"
dimensions of the file. When creating a content image from the loaded data,
we currently simply apply this directly to the preferred size.

This works usually fine: GdkPixbuf will always keep the aspect ratio, so
if only one dimension is provided, the other will be adjusted accordingly:

Loading a 200x200 image with a requested size of (100, -1) will result in
a 100x100 content image.

There is a catch though: GdkPixbuf will only scale *down* to the requested
size, no up. That is, loading a 100x100 image with a requested size of
(200, -1) will result in a 100x100 pixbuf. But as we assume that the pixbuf
size matches the requested size, the image content ends up with 200x100.

Fix this by explicitly handling the case where only one size was supplied,
and make the other dimension take the aspect ratio into account

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/525

7 years agowindowManager: Fix fullscreen windows in ws switching animations
Jonas Dreßler [Fri, 3 May 2019 20:56:02 +0000 (22:56 +0200)]
windowManager: Fix fullscreen windows in ws switching animations

To prevent a small gap between windows in the workspace switching
animation, we temporarily shift windows up or down by the height of the
panel. This obviously breaks the animation for fullscreen windows, those
will overlap with the ones on the other workspace since there is no
panel shown in that case.

Fix this by checking whether the old or new workspace includes a
fullscreen window and don't shift the windows if there is one.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/757

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/322

7 years agodialog: Use object's set to assign properties
Marco Trevisan (Treviño) [Fri, 3 May 2019 20:30:42 +0000 (15:30 -0500)]
dialog: Use object's set to assign properties

We can just assign a properties object to a GObject using the set() method
instead of using Object.assign.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531

7 years agodialog: Really set ellipsize mode in subtitle and body
Marco Trevisan (Treviño) [Fri, 3 May 2019 20:27:13 +0000 (15:27 -0500)]
dialog: Really set ellipsize mode in subtitle and body

Dialog's subtitle or body could not be properly wrapped, while it's ellipsized
when the text's width doesn't exceed the container size.

Clutter text has an `ellipsize` property, however in dialog's subtitle and body
we have been setting the `ellipsize-mode` property to Pango.EllipsizeMode.NONE
that is not present in the underlying GObject.

Not being an error in javascript, gjs didn't warn us about this, while at the
same time the St.Label's default Pango.EllipsizeMode.END was used.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/922

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531

7 years agost: Reimplement StClipboard on top of MetaSelection
Carlos Garnacho [Mon, 26 Nov 2018 11:54:23 +0000 (12:54 +0100)]
st: Reimplement StClipboard on top of MetaSelection

And stop using X11/gdk for this.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/331

7 years agoUpdate Esperanto translation
Carmen Bianca BAKKER [Wed, 1 May 2019 19:54:12 +0000 (19:54 +0000)]
Update Esperanto translation

7 years agodashSpacer: Don't trigger allocations from size negotiations
Florian Müllner [Tue, 30 Apr 2019 11:31:51 +0000 (13:31 +0200)]
dashSpacer: Don't trigger allocations from size negotiations

If an actor's allocation is outdated, clutter_actor_get_allocation_box()
will queue a relayout. That's why it's advised to not use the function
unless the allocation is known to be valid (namely during paint), but
in particular not from within get_preferred_width/height vfuncs.

Using the :allocation property (which may be outdated) would be better,
but in this case we can simply delegate the request to the correct actor.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1065

7 years agokeyboard: Destroy old layout actors when regenerating keyboard groups
Carlos Garnacho [Tue, 30 Apr 2019 12:08:25 +0000 (14:08 +0200)]
keyboard: Destroy old layout actors when regenerating keyboard groups

We were cleaning up self._groups, but the actors for all previous
groups/layers/modes would remain attached to the aspect container,
simply hidden.

Under some circumstances this can really make the amount of actors
in the shell stage to quickly ramp up, it's not just a "leak" but
also has potential side effects on performance.

We should destroy all child actors of this._aspectContainer, except
the static ones (emoji and keypad).

While at it, fix this._groups re-initialization, as it's actually an
object, not an array.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/523
Closes?: https://gitlab.gnome.org/GNOME/mutter/issues/556

7 years agoworldClocks: Ignore locations with unknown timezone
Florian Müllner [Sun, 28 Apr 2019 10:33:41 +0000 (12:33 +0200)]
worldClocks: Ignore locations with unknown timezone

We currently assume that every location has an associated timezone.
While this is sound in the real world, in practise it depends on
whether or not libgweather can find a corresponding timezone DB
entry.

This used to be a fringe case, but has become more likely when commit
https://gitlab.gnome.org/GNOME/libgweather/commit/d7682676ac9 moved
weather stations from cities to countries - the station itself is un-
likely to have a timezone entry, and the country may be part of more
than a single timezone.

It would be good for libgweather to return a timezone for those
locations again, but we should defend against the case anyway.
We cannot tell what time it is at a particular location without
knowing the timezone, so simply filter them out.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1062

7 years agost: Reload icon on style changes only if necessary
Carlos Garnacho [Tue, 30 Apr 2019 12:51:47 +0000 (14:51 +0200)]
st: Reload icon on style changes only if necessary

The parameters that may affect the icon on ::style-changed are more size
related than visual (we listen to icon theme changes for the latter). It
makes sense to just update the icon if the size came out different.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/524

7 years agost: Use g_signal_handler_disconnect() to disconnect from StTheme
Carlos Garnacho [Tue, 30 Apr 2019 12:42:59 +0000 (14:42 +0200)]
st: Use g_signal_handler_disconnect() to disconnect from StTheme

With a high enough amount of actors, there may be enough theme nodes and
signal connections on StTheme::custom-stylesheets-changed that
g_signal_handlers_disconnect_by*() on dispose becomes expensive, this may
become a surprisingly hot spot in StWidget::style-changed.

Keep the handler ID around and use g_signal_handler_disconnect() to avoid
linear lookups for the matching func/data.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/524

7 years agopanel: Don't chain up to parent's allocate
Florian Müllner [Mon, 29 Apr 2019 17:53:57 +0000 (17:53 +0000)]
panel: Don't chain up to parent's allocate

The top bar handles allocating all its children itself, so there's
little value in chaining up to st_widget_allocate() and get the
default layout manager allocating all children again (and possibly
differently).

If this happens, we end up with an infinite allocation cycle with
corresponding performance penalty. Fix this by just doing and what
Shell.GenericContainer did before commit 286ffbe2b6 replaced it,
and not chain up to StWidget.

Thanks to Robert Mader for debugging the issue.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1054

7 years agopadOsd: Use non-deprecated librsvg API to create handle
Carlos Garnacho [Fri, 26 Apr 2019 11:03:42 +0000 (13:03 +0200)]
padOsd: Use non-deprecated librsvg API to create handle

On one hand, we were using a path instead of an URI on
rsvg_handle_set_base_uri(). This broke at some point in librsvg
(presumably for the best, handling paths there sounds non-standard)
leaving a blank svg (As the base image wouldn't be accessed).

On the other hand, we use this with the deprecated rsvg_handle_write()
which we should drift away from.

Using rsvg_handle_new_from_stream_sync() neatly solves both. We use
newer API based on input streams and GFiles, and it internally does
the right thing, bringing the pad OSD back to life.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1220
7 years agojs: Check for this.constructor type instead of new.target
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:55:34 +0000 (15:55 -0500)]
js: Check for this.constructor type instead of new.target

Use more ES6-inspired check for classes initializations.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agoCyclerPopup: Check for type using constructor
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:50:21 +0000 (15:50 -0500)]
CyclerPopup: Check for type using constructor

Classes that are sub-classes of GObject don't use a constructor per se, so we
can't check for new.target (as this is undefined) in _init.

Then compare the current constructor name instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agoSwitcherPopup: Check for type using constructor
Marco Trevisan (Treviño) [Thu, 18 Apr 2019 20:50:49 +0000 (15:50 -0500)]
SwitcherPopup: Check for type using constructor

Classes that are sub-classes of GObject don't use a constructor per se, so we
can't check for new.target (as this is undefined) in _init.

Then compare the current constructor name instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agokeyboard: Disable emoji support on X11
Florian Müllner [Fri, 26 Apr 2019 08:23:28 +0000 (10:23 +0200)]
keyboard: Disable emoji support on X11

Unlike regular keys that generate key events from a virtual device,
emoji keys rely on the input method to insert the character. However
as the compositor cannot inject IM events into ibus, this only works
in the shell's own entries on X11.

We shouldn't expose mostly broken functionality to the user, so limit
the feature to the wayland session.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1172

7 years agoci: Improve script output
Florian Müllner [Fri, 26 Apr 2019 18:34:45 +0000 (20:34 +0200)]
ci: Improve script output

git-fetch's -q flag doesn't suppress warnings, so it's not a full
replacement of the redirection that was removed in commit 8cefd919.
Shut up the cryptic warning and replace it with a clearer log message
instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/511

7 years agoci: Try harder to find a matching mutter branch
Florian Müllner [Thu, 25 Apr 2019 21:11:11 +0000 (23:11 +0200)]
ci: Try harder to find a matching mutter branch

Depending on how gitlab's CI checks out gnome-shell, the shell branch
may not have a local reference like "gnome-3-32", but only a remote
one like "remotes/origin/gnome-3-32".

Consider that case as well when looking for a corresponding mutter branch.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/511

7 years agoci: Handle merge requests for non-master branches
Florian Müllner [Tue, 23 Apr 2019 17:04:21 +0000 (19:04 +0200)]
ci: Handle merge requests for non-master branches

If we don't find a branch that matches the branch used in the merge
request, we currently fall back to the non-merge-request matching,
i.e. first try the current shell branch, then fall back to master.

This should work for commits to upstream branches, but not for merge
requests to a stable branch. For those, the target branch name is
a better fallback.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509

7 years agoci: Fix checking out mutter for stable branches
Florian Müllner [Tue, 23 Apr 2019 16:36:35 +0000 (16:36 +0000)]
ci: Fix checking out mutter for stable branches

Remote branches always start with the remote itself, so just looking
for "gnome-3-32" etc. won't produce a match.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509

7 years agoci: Silence some warnings
Florian Müllner [Tue, 23 Apr 2019 16:36:19 +0000 (16:36 +0000)]
ci: Silence some warnings

... as suggested by Jonas in mutter!548.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/509

7 years agoaccessibility: Add settings changed signal handler after creating widget
Jonas Dreßler [Fri, 26 Apr 2019 08:56:07 +0000 (10:56 +0200)]
accessibility: Add settings changed signal handler after creating widget

Move the signal handlers for changed settings to be connected after the
creation of the menu items to make sure a reference to the item is set.

While it also worked fine before, this solution certainly looks cleaner.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/512

7 years agoUpdate Friulian translation
Fabio Tomat [Fri, 26 Apr 2019 14:11:05 +0000 (14:11 +0000)]
Update Friulian translation

7 years agoUpdate Indonesian translation
Kukuh Syafaat [Thu, 25 Apr 2019 07:56:11 +0000 (07:56 +0000)]
Update Indonesian translation

7 years agoci: Ensure we clone a deep enough history for commit review
Carlos Garnacho [Wed, 24 Apr 2019 10:24:12 +0000 (12:24 +0200)]
ci: Ensure we clone a deep enough history for commit review

It seems gitlab changed something recently in the default clone depth
which made MRs with >10 commits to obscurely fail in the review stage.
As per https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning, bump it
to 100 to allow bigger MRs.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/551

7 years agoShellApp: Use g_signal_connect_object for window signals
Simon McVittie [Tue, 16 Apr 2019 22:59:58 +0000 (23:59 +0100)]
ShellApp: Use g_signal_connect_object for window signals

A window being unmanaged can cause the ShellApp to be removed from
the ShellAppSystem, which if we are unlucky is the app's last
reference, causing it to be disposed and freed. It would be bad if this
happened before we finished handling the signal.

Use g_signal_connect_object to ensure that a reference is held to
the ShellApp for the duration of the signal handler, delaying its
last-unref.

In particular, when a signal handler calls _shell_app_remove_window(),
there is a brief period for which ShellApp breaks the intended
invariant (see !497) that app->running_state is non-NULL if and only if
app->running_state->windows is also non-NULL (non-empty). Freeing the
ShellApp at this point would cause a crash. This seems likely to be the
root cause of <https://gitlab.gnome.org/GNOME/gnome-shell/issues/750>,
<https://gitlab.gnome.org/GNOME/gnome-shell/issues/822> and
<https://bugs.debian.org/926212>.

Signed-off-by: Simon McVittie <smcv@debian.org>
7 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 23 Apr 2019 08:28:12 +0000 (10:28 +0200)]
Updated Spanish translation

7 years agost: Only emit ::style-changed on actual changes
Carlos Garnacho [Fri, 19 Apr 2019 13:43:39 +0000 (15:43 +0200)]
st: Only emit ::style-changed on actual changes

Compare painting/geometry of old and new paint nodes, so it's ensured to
be only emitted on actual style changes. Emission still must be propagated
through to children, though.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1153
7 years agoworkspacesView: sync gesture enabled state after setting it up completely
Carlos Garnacho [Fri, 19 Apr 2019 16:52:53 +0000 (18:52 +0200)]
workspacesView: sync gesture enabled state after setting it up completely

At the point it is disabled, it has got signal handlers connected but
this._workspacesView is uninitialized. This triggers:

(gnome-shell:3993): Gjs-WARNING **: 18:49:53.281: JS ERROR: Exception in callback for signal: cancel: TypeError: this._workspacesViews is undefined
_endTouchGesture@resource:///org/gnome/shell/ui/workspacesView.js:527:25
_emit@resource:///org/gnome/gjs/modules/signals.js:142:27
set enabled@resource:///org/gnome/shell/ui/windowManager.js:478:13
WorkspacesDisplay<@resource:///org/gnome/shell/ui/workspacesView.js:482:9
ViewSelector<@resource:///org/gnome/shell/ui/viewSelector.js:167:35
ControlsManager<@resource:///org/gnome/shell/ui/overviewControls.js:405:29
init@resource:///org/gnome/shell/ui/overview.js:234:26
_initializeUI@resource:///org/gnome/shell/ui/main.js:184:5
start@resource:///org/gnome/shell/ui/main.js:124:5
@<main>:1:31

On startup. Shuffling these two lines prevent this from happening.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/506

7 years agoshell, st: Adjust to CoglPipeline API changes
Georges Basile Stavracas Neto [Thu, 18 Apr 2019 19:29:15 +0000 (16:29 -0300)]
shell, st: Adjust to CoglPipeline API changes

cogl_pipeline_set_layer_null_texture() now doesn't receive
the texture type, since it only supports 2D textures now.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/503

7 years agoutil: Fix compiler warning
Georges Basile Stavracas Neto [Thu, 18 Apr 2019 18:38:01 +0000 (15:38 -0300)]
util: Fix compiler warning

A harmless warning due to meta_surface_actor_get_texture()
now returning a pointer to MetaShapedTexture instead of
ClutterActor.

No functional changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/502

7 years agomeson.build: Add more compilation warnings
Robert Mader [Tue, 5 Mar 2019 22:46:47 +0000 (23:46 +0100)]
meson.build: Add more compilation warnings

Use the same warnings as mutter.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/441

7 years agocalendar-server: Add gnu_printf format attribute
Robert Mader [Tue, 5 Mar 2019 22:45:44 +0000 (23:45 +0100)]
calendar-server: Add gnu_printf format attribute

Suggested by compiler with `-Wsuggest-attribute=format`

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/441

7 years agohotplug-sniffer: Add gnu_printf format attribute
Robert Mader [Tue, 5 Mar 2019 22:43:01 +0000 (23:43 +0100)]
hotplug-sniffer: Add gnu_printf format attribute

Suggested by compiler with `-Wsuggest-attribute=format`

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/441

7 years agona-tray-manager: Add missing `void` to functions with no arguments
Robert Mader [Tue, 5 Mar 2019 22:21:25 +0000 (23:21 +0100)]
na-tray-manager: Add missing `void` to functions with no arguments

to avoid "old-style function definition" and "function declaration
isn’t a prototype" warnings.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/441

7 years agopopupMenu: Make MenuManager to take an actor as parameter
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:23:59 +0000 (18:23 -0500)]
popupMenu: Make MenuManager to take an actor as parameter

Since we assume now that most of the classes are actors per se we can just pass
the actor itself as parameter

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agoworkspaceThumbnail: Remove this.actor definition to ThumbnailsBox
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:26:39 +0000 (18:26 -0500)]
workspaceThumbnail: Remove this.actor definition to ThumbnailsBox

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agoworkspaceSwitcherPopup: Remove this.actor definition to self
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:26:19 +0000 (18:26 -0500)]
workspaceSwitcherPopup: Remove this.actor definition to self

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agopanel: Remove this.actor definition to self
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:25:41 +0000 (18:25 -0500)]
panel: Remove this.actor definition to self

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agomessageTray: Remove this.actor definition to SourceActor
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:25:30 +0000 (18:25 -0500)]
messageTray: Remove this.actor definition to SourceActor

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agoiconGrid: Remove this.actor definition to BaseIcon
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:25:20 +0000 (18:25 -0500)]
iconGrid: Remove this.actor definition to BaseIcon

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agopanelMenu: Remove usage of this.actor from Button
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 23:17:51 +0000 (18:17 -0500)]
panelMenu: Remove usage of this.actor from Button

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agoboxpointer: Don't use boxpointer actor, as it's now an actor itself
Marco Trevisan (Treviño) [Tue, 9 Apr 2019 20:21:15 +0000 (15:21 -0500)]
boxpointer: Don't use boxpointer actor, as it's now an actor itself

Remove this.actor = actor, since the class is now an actor itself.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agoenvironment: Warn when trying to access a deprecated actor property
Florian Müllner [Sat, 13 Apr 2019 18:34:29 +0000 (13:34 -0500)]
environment: Warn when trying to access a deprecated actor property

The port away from the old Shell.GenericContainer actor turned many JS
classes with a corresponding actor property into Clutter.Actor subclasses.
For compatibility reasons, those properties were kept around for a while.
They were now removed and any code that still uses them should be adjusted.

Facilitate that transition by defining the compatibility property on
Clutter.Actor itself, but log a warning every time it is accessed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/487

7 years agotheme: Update window preview style
Feichtmeier [Fri, 15 Mar 2019 13:41:55 +0000 (14:41 +0100)]
theme: Update window preview style

 - simplify the close button to use blue, lighter blue and darker blue
   solid disks for normal, hover and active states

 - use a milky, transparent white border for the hover effect of the border

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/461

7 years agoappIconMenu: Sync windows section with app menu
Florian Müllner [Tue, 12 Feb 2019 12:37:39 +0000 (13:37 +0100)]
appIconMenu: Sync windows section with app menu

Keep the app icon context menu consistent with the app menu, so stop
grouping windows by workspace and add a section heading.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/968

7 years agoappMenu: Add heading to windows section
Florian Müllner [Mon, 11 Feb 2019 18:55:42 +0000 (19:55 +0100)]
appMenu: Add heading to windows section

It may not be immediately obvious that the windows section is a
list of open application windows, as titles like "Downloads" can
easily be confused with an action. Add a section heading to avoid
confusion.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/968

7 years agoappMenu: Remove separator in window section
Florian Müllner [Mon, 11 Feb 2019 19:03:05 +0000 (20:03 +0100)]
appMenu: Remove separator in window section

We currently copy the app icon menu behavior, which puts a separator
between windows from the current workspace and windows from any other
workspace. It is more useful to have the windows section appear as a
clearly marked group, so drop the separator.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/968

7 years agoappMenu: Add separator between "Details" and "Quit"
Florian Müllner [Mon, 11 Feb 2019 18:50:37 +0000 (19:50 +0100)]
appMenu: Add separator between "Details" and "Quit"

The two actions are sufficiently different to warrant their own
groups.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/968

7 years agoBump version to 3.32.1
Florian Müllner [Wed, 17 Apr 2019 19:04:37 +0000 (21:04 +0200)]
Bump version to 3.32.1

Update NEWS.

7 years agost: Round CSS units to the nearest multiple of the scale factor
Carlos Garnacho [Sat, 23 Mar 2019 15:33:58 +0000 (16:33 +0100)]
st: Round CSS units to the nearest multiple of the scale factor

Actors themed through CSS should ideally get sizes and positions that
conform to the "pixel grid". A notorious example is the panel that has a
height of 1.86em. On unchanged font settings and hidpi that translates to
55px, which leaves the workarea with "half pixels" that hidpi wayland
applications don't know how to fully cover.

If the requested height is a multiple of the scale factor, the workarea
and maximized applications can then work on full pixels.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/91
7 years agobarLevel: Don't show border radius if the value is 0
verdre [Sat, 2 Feb 2019 16:01:29 +0000 (17:01 +0100)]
barLevel: Don't show border radius if the value is 0

Work around a known regression from [1] that caused the volume bar in
the OSD window to never be hidden, even if the volume is set to 0. This
happened because the border radius of the barLevel is always drawn
without ensuring that the actual bar is visible.

So simply check if the value to draw is 0, and if it is, don't draw the
border radius of the bar at all. This will still result in incorrect
representation of values that have a width smaller than 2*border-radius,
but at least the bar looks right for a width of 0 now.

[1] https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/2

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/384

7 years agowindowManager: ensure actor resize clone dies with actor
Ray Strode [Thu, 7 Feb 2019 19:27:35 +0000 (14:27 -0500)]
windowManager: ensure actor resize clone dies with actor

If a window gets destroyed right before it's resize
animation starts the user can get confronted with an undead
zombie clone that doesn't go away.

This commit makes sure said clones get reaped with their
actors.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1166

7 years agoswitch: Drop separate handling for US
Florian Müllner [Tue, 16 Apr 2019 17:21:02 +0000 (17:21 +0000)]
switch: Drop separate handling for US

The switches no longer use ON/OFF or o/|, so just use the
same class and artwork everywhere.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/496

7 years agotheme: update toggle switch design
Jakub Steiner [Tue, 16 Apr 2019 14:05:10 +0000 (16:05 +0200)]
theme: update toggle switch design

- for the short term, just replace the SVG assets

See https://gitlab.gnome.org/GNOME/gnome-shell/issues/841 for background

7 years agodash: Fix messed up icon height
Florian Müllner [Tue, 9 Apr 2019 01:03:54 +0000 (03:03 +0200)]
dash: Fix messed up icon height

When determining the biggest icon size that fits the available height,
we first subtract the additional space requirements of icons (spacing,
padding, running indicator etc.) and then divide the result by the
number of icons to get the maximum size available to each icon texture.

In the above, the additional space requirement of each icon is taken
from the first icon (as all icons are assumed to be the same), and
calculated as the difference between the icon button's preferred height
and the currently used icon size.

To make sure that the icon is actually using the dash's current icon
size (even while animating to a new icon size), we enforce its height
during the size request and restore its original height afterwards.

However after some recent changes, that step is causing troubles:
For some reason, the original height may be 0, and when we restore it,
we end up forcing a fixed non-height that bypasses the regular size
request machinery.

While it is unclear where exactly the zero height comes from (maybe
waiting for a valid resource scale?), it is clear that it's best
to avoid forcing a fixed height. So instead of making the icon
texture comply with the assumed icon size, adjust the calculations
to use its current height request.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1053

7 years agodateMenu: Make clock offsets relative to local time
Florian Müllner [Thu, 11 Apr 2019 09:36:33 +0000 (11:36 +0200)]
dateMenu: Make clock offsets relative to local time

We recently added offsets to world clocks that represent the location's
timezone as UTC offset. However for most users, that representation is
overly technical and less helpful than the difference to their local time.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1157

7 years agodateMenu: Make sure we always display a clock name
Florian Müllner [Fri, 12 Apr 2019 00:10:04 +0000 (02:10 +0200)]
dateMenu: Make sure we always display a clock name

We currently use the city name for all location except named timezones.
However locations only have a city name if they are of level CITY or
DETACHED, or if they are of level WEATHER_STATION with a parent of level
CITY.

So when libgweather commit d7682676ac9 moved weather station locations from
cities to countries, it broke their names in the world clocks section.

To fix this, stop making assumptions about when we can use the city name
and simply try it first for all locations and fall back to the plain name
if its not available.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1150

7 years agoextensionPrefs: Fix pref button appearance
Florian Müllner [Fri, 5 Apr 2019 16:24:09 +0000 (18:24 +0200)]
extensionPrefs: Fix pref button appearance

After the Adwaita refresh, the button shows up oval rather than
circular. To address this, make sure that the "image-button" class
is applied as well by using the dedicated setter function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/482

7 years agoappFavorites: Update RENAMED_DESKTOP_IDS
AsciiWolf [Thu, 11 Apr 2019 19:48:21 +0000 (19:48 +0000)]
appFavorites: Update RENAMED_DESKTOP_IDS

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1160

7 years agoboxpointer: Compute source allocation and work area just once
Marco Trevisan (Treviño) [Fri, 8 Mar 2019 20:36:23 +0000 (14:36 -0600)]
boxpointer: Compute source allocation and work area just once

Compute the source actor workarea and allocation when repositioning and keep it
cached so that we've not to calculating it again in _calculateArrowSide.

Since _calculateArrowSide only is called inside _updateFlip that is always
called just after reposition, we can be sure that the computed values are still
correct.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/435

7 years agoboxpointer: Use X/Y actor positioning instead of an anchor point
Marco Trevisan (Treviño) [Mon, 4 Mar 2019 23:38:32 +0000 (17:38 -0600)]
boxpointer: Use X/Y actor positioning instead of an anchor point

Currently all the widgets using BoxPointer and so popup actors are always drawn
at screen origin and then shifted at paint time in the proper position.

This doesn't work when using resource scale, since the widgets need to know
in which monitor they currently are in order to use properly scaled resources.

So, basically revert commit 22c22e0d7 and go back using the actual actor
coordinates for positioning and the actor translation for animating it, as the
relayouting issues of the past seem to be gone now.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1008
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/435

7 years agolayout: Use an invisible but mapped actor as dummy cursor
Marco Trevisan (Treviño) [Mon, 4 Mar 2019 23:39:54 +0000 (17:39 -0600)]
layout: Use an invisible but mapped actor as dummy cursor

Since this could be used as boxpointer source, it should be marked as mapped,
or it will be ignored.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/435

7 years agoboxpointer: Compute arrowStride using sourceActor monitor as reference
Marco Trevisan (Treviño) [Fri, 8 Mar 2019 20:21:28 +0000 (14:21 -0600)]
boxpointer: Compute arrowStride using sourceActor monitor as reference

I suppose this was also the goal of commit 96e14dc, but because it was checking
the value of the always-undefined this.sourceActor, it really never worked as
expected.

So, now since we assume that this._sourceActor is always defined just use it
as reference to compute the monitor menu position.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1029
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/435

7 years agowindowManager: Don't move sticky windows when inserting workspace
Florian Müllner [Mon, 8 Apr 2019 04:40:13 +0000 (06:40 +0200)]
windowManager: Don't move sticky windows when inserting workspace

Inserting a workspace is implemented by appending a new workspace, then
shifting all windows after the "new" workspace up. This has an unintended
side effect on sticky windows, as changing its workspace will unstick it.

Fix this by excluding sticky windows - there's little point in moving them
anyway, given that they should be on all workspaces (including the original
workspace and the target one).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1151

7 years agoshellDBus: Accept connector to restrict OSD to one monitor
Benjamin Berg [Thu, 11 Apr 2019 09:43:03 +0000 (11:43 +0200)]
shellDBus: Accept connector to restrict OSD to one monitor

The monitor index is not something that gnome-shell and
gnome-settings-daemon seem to be agreeing about. Using the connector
string is a much more reliable method of identifying a specific screen
and we are indeed using this already for monitor labling.

So switch over to use the connector rather than the monitor index. If a
user tries to use the old API, then the OSD will simply show up on all
monitors (which is the status quo currently anyway).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/489

7 years agoshellDBus: Remove ShowMonitorLabels API
Benjamin Berg [Thu, 11 Apr 2019 17:37:15 +0000 (19:37 +0200)]
shellDBus: Remove ShowMonitorLabels API

This API has been broken for quite some time now as the corresponding
mutter function meta_monitor_manager_get_monitor_for_output was removed.
If anyone tries to use it, we would just run into a backtrace.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/490

7 years agoscreenshot: Don't pick up rubberband style from GTK
Florian Müllner [Thu, 4 Apr 2019 14:03:54 +0000 (16:03 +0200)]
screenshot: Don't pick up rubberband style from GTK

Selecting a screen area for a screenshot isn't the same as selecting
items in an icon view, so there's no strong rationale for picking
up the style from GTK. We stopped doing that for other elements like
tile previews long ago, so just use our own style here too.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/481

7 years agoperf: Stop using GTK
Florian Müllner [Thu, 4 Apr 2019 13:45:01 +0000 (15:45 +0200)]
perf: Stop using GTK

Instead of going through GtkSettings, we can just as well use the
underlying GSettings directly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/481

7 years agopanel: Remove left-over Gtk.Settings
Florian Müllner [Thu, 4 Apr 2019 12:29:30 +0000 (14:29 +0200)]
panel: Remove left-over Gtk.Settings

It has been unused since commit c334aa2a4c.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/481

7 years agoworkspacesView: Support touch/touchpad gestures to switch workspaces
Florian Müllner [Wed, 20 Mar 2019 17:19:01 +0000 (17:19 +0000)]
workspacesView: Support touch/touchpad gestures to switch workspaces

Now that the existing touch/touchpad gestures in windowManager only
handle normal mode, add corresponding gestures for the overview and
hook them up to the existing workspace scroll animations.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

7 years agowindowManager: Limit switch gestures to normal mode
Florian Müllner [Wed, 20 Mar 2019 15:21:01 +0000 (15:21 +0000)]
windowManager: Limit switch gestures to normal mode

The window group is hidden while in overview, so the stick-to-content
animation isn't visible either. Worse, the gestures messes up the
position of window actors in that case. Just limit the gesture to
normal mode for now, we will soon add it back in the overview with
its own animation handling.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

7 years agoswitchGestures: Do not hard-code allowed modes
Florian Müllner [Wed, 20 Mar 2019 15:19:47 +0000 (15:19 +0000)]
switchGestures: Do not hard-code allowed modes

The touch/touchpad gestures to switch workspace currently hard-code
the modes in which we want the gestures to work. While these modes
are correct, the existing switch animation only works in NORMAL mode,
not in the overview where the window group is hidden. The easiest way
to address this is to handle both cases completely separately, namely
use separate actions in- and outside the overview.

Make the existing usable in that way by making the list of allowed
modes a constructor parameter.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

7 years agowindowManager: Allow disabling touchpad workspace switch action
Florian Müllner [Wed, 20 Mar 2019 17:03:27 +0000 (17:03 +0000)]
windowManager: Allow disabling touchpad workspace switch action

Just like actual ClutterActions, it can make sense to temporarily
disable the touchpad action, so add an appropriate property.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/516

7 years agost: Add missing include
Florian Müllner [Mon, 8 Apr 2019 16:10:00 +0000 (18:10 +0200)]
st: Add missing include

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/485

7 years agost: Add missing END_DECLS marker
Florian Müllner [Mon, 8 Apr 2019 16:02:56 +0000 (18:02 +0200)]
st: Add missing END_DECLS marker

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/485

7 years agoweather: Handle missing permission store
Florian Müllner [Wed, 3 Apr 2019 10:35:03 +0000 (12:35 +0200)]
weather: Handle missing permission store

Our weather integration is supposed to follow GNOME Weather's settings,
including its permission to use location services. However there's a
discrepancy in case xdg-desktop-portal is unavailable:

While our geoclue agent grants all applications access to location
services in that case, the weather integration treats it as if
access was denied.

Fix this by handling this case explicitly.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1130

7 years agoci: Use custom image for commit log check
Florian Müllner [Wed, 3 Apr 2019 11:28:32 +0000 (13:28 +0200)]
ci: Use custom image for commit log check

We can speed up the check a little bit by using an image that
already contains git, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/480

7 years agost/settings: Add magnifier activation property and bind to settings
Marco Trevisan (Treviño) [Tue, 12 Mar 2019 21:41:18 +0000 (21:41 +0000)]
st/settings: Add magnifier activation property and bind to settings

The same code for reading the current magnifier state is repeated in both
shell-recorder, shell-screenshot and magnifier itself.
So to move this inside a property of st-settings so that we can refer to it
all over the places removing duplications.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/473

7 years agoIgnore '.vscode' folder for users of that editor
Phil Wyett [Tue, 2 Apr 2019 17:37:31 +0000 (17:37 +0000)]
Ignore '.vscode' folder for users of that editor

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/476

7 years agoshell: Fallback on ISO 8601 datetime string for screenshot date info
Carlos Garnacho [Mon, 1 Apr 2019 16:06:49 +0000 (18:06 +0200)]
shell: Fallback on ISO 8601 datetime string for screenshot date info

If the locale doesn't honor strftime()'s %c argument, we would end up
feeding NULLs into GdkPixbuf tagging. Fallback to a sensible (although
not nicely localized) datetime string.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1017
7 years agomagnifier: Use actor scaling filters on content texture node
Marco Trevisan (Treviño) [Mon, 11 Mar 2019 21:30:39 +0000 (17:30 -0400)]
magnifier: Use actor scaling filters on content texture node

Reuse the same filter values of the attached actor, instead of hardcoding the
defaults.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/454

7 years agomagnifier: Track cursor sprite changes only when active
Marco Trevisan (Treviño) [Mon, 11 Mar 2019 21:09:08 +0000 (17:09 -0400)]
magnifier: Track cursor sprite changes only when active

There's no point in keeping the cursor sprite texture around all the time,
and to listen for its changes, we just need this when the magnifier is active.

So, initialize the magnifier texture and monitor for the sprite changes on
activation, while disconnect from the signal and nullify the texture when
the magnifier is deactivated.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/443